package com.ruoyi.orders.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单对象 t_order
 * 
 * @author ruoyi
 * @date 2025-08-19
 */
public class TOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID，自增主键 */
    private Long orderId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 下单人手机号 */
    @Excel(name = "下单人手机号")
    private String ordererPhone;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String plateNumber;

    /** 乘车人手机号 */
    @Excel(name = "乘车人手机号")
    private String passengerPhone;

    /** 司机手机号 */
    @Excel(name = "司机手机号")
    private String driverPhone;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String paymentMethod;

    /** 是否使用优惠券 */
    @Excel(name = "是否使用优惠券")
    private Integer useCoupon;

    /** 服务类型 */
    @Excel(name = "服务类型")
    private String serviceType;

    /** 支付状态 */
    @Excel(name = "支付状态")
    private String paymentStatus;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 用车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useCarTime;

    /** 订单金额 */
    private BigDecimal orderAmount;

    /** 服务时长（分钟） */
    private Long serviceDuration;

    /** 服务里程（公里） */
    private BigDecimal serviceMileage;

    /** 支付模式 */
    private String paymentMode;

    /** 下单来源 */
    private String orderSource;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setOrderNumber(String orderNumber) 
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber() 
    {
        return orderNumber;
    }

    public void setOrdererPhone(String ordererPhone) 
    {
        this.ordererPhone = ordererPhone;
    }

    public String getOrdererPhone() 
    {
        return ordererPhone;
    }

    public void setPlateNumber(String plateNumber) 
    {
        this.plateNumber = plateNumber;
    }

    public String getPlateNumber() 
    {
        return plateNumber;
    }

    public void setPassengerPhone(String passengerPhone) 
    {
        this.passengerPhone = passengerPhone;
    }

    public String getPassengerPhone() 
    {
        return passengerPhone;
    }

    public void setDriverPhone(String driverPhone) 
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone() 
    {
        return driverPhone;
    }

    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }

    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }

    public void setUseCoupon(Integer useCoupon) 
    {
        this.useCoupon = useCoupon;
    }

    public Integer getUseCoupon() 
    {
        return useCoupon;
    }

    public void setServiceType(String serviceType) 
    {
        this.serviceType = serviceType;
    }

    public String getServiceType() 
    {
        return serviceType;
    }

    public void setPaymentStatus(String paymentStatus) 
    {
        this.paymentStatus = paymentStatus;
    }

    public String getPaymentStatus() 
    {
        return paymentStatus;
    }

    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }

    public void setUseCarTime(Date useCarTime) 
    {
        this.useCarTime = useCarTime;
    }

    public Date getUseCarTime() 
    {
        return useCarTime;
    }

    public void setOrderAmount(BigDecimal orderAmount) 
    {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount() 
    {
        return orderAmount;
    }

    public void setServiceDuration(Long serviceDuration) 
    {
        this.serviceDuration = serviceDuration;
    }

    public Long getServiceDuration() 
    {
        return serviceDuration;
    }

    public void setServiceMileage(BigDecimal serviceMileage) 
    {
        this.serviceMileage = serviceMileage;
    }

    public BigDecimal getServiceMileage() 
    {
        return serviceMileage;
    }

    public void setPaymentMode(String paymentMode) 
    {
        this.paymentMode = paymentMode;
    }

    public String getPaymentMode() 
    {
        return paymentMode;
    }

    public void setOrderSource(String orderSource) 
    {
        this.orderSource = orderSource;
    }

    public String getOrderSource() 
    {
        return orderSource;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderNumber", getOrderNumber())
            .append("ordererPhone", getOrdererPhone())
            .append("plateNumber", getPlateNumber())
            .append("passengerPhone", getPassengerPhone())
            .append("driverPhone", getDriverPhone())
            .append("orderStatus", getOrderStatus())
            .append("paymentMethod", getPaymentMethod())
            .append("useCoupon", getUseCoupon())
            .append("serviceType", getServiceType())
            .append("paymentStatus", getPaymentStatus())
            .append("orderTime", getOrderTime())
            .append("useCarTime", getUseCarTime())
            .append("orderAmount", getOrderAmount())
            .append("serviceDuration", getServiceDuration())
            .append("serviceMileage", getServiceMileage())
            .append("paymentMode", getPaymentMode())
            .append("orderSource", getOrderSource())
            .toString();
    }
}
